/** \file TypeInfo.inl
 * Inline function definitions for the class TypeInfo.
 *
 * (c) Copyright  Semih Cemiloglu
 * All rights reserved, see COPYRIGHT file for details.
 *
 * $Id: TypeInfo.inl 119 2006-06-21 04:57:25Z semihc $
 *
 *
 */

#ifndef TC_TYPEINFO_INL
#define TC_TYPEINFO_INL

namespace TC {

  //
  // Comparison operators
  //

  TC_INLINE bool operator==(const TypeInfo& lhs, const TypeInfo& rhs)
    // type_info::operator== return type is int in some VC libraries
  { return (lhs.getInfo() == rhs.getInfo()) != 0; }

  TC_INLINE bool operator<(const TypeInfo& lhs, const TypeInfo& rhs)
  { return lhs.before(rhs); }
  
  TC_INLINE bool operator!=(const TypeInfo& lhs, const TypeInfo& rhs)
  { return !(lhs == rhs); }    
  
  TC_INLINE bool operator>(const TypeInfo& lhs, const TypeInfo& rhs)
  { return rhs < lhs; }
  
  TC_INLINE bool operator<=(const TypeInfo& lhs, const TypeInfo& rhs)
  { return !(lhs > rhs); }
  
  TC_INLINE bool operator>=(const TypeInfo& lhs, const TypeInfo& rhs)
  { return !(lhs < rhs); }

} // end namespace

#endif /* Include guard */
